#!/bin/bash
#
# Este script lista las sesiones en un servidor Samba...
#

 # Obtener la ruta absoluta del script
 LSOF=$(lsof 2>/dev/null -p $$ | grep -E "/"$(basename $0)"$")
 MY_PATH=$(echo $LSOF | sed -r s/'^([^\/]+)\/'/'\/'/1 2>/dev/null)
 MY_ROOT=$(dirname $MY_PATH)

 # Cargar la configuracion del servidor Samba
 . $MY_ROOT/Config.app.conf

 # Para los temporales
 tmpFile=/tmp/smbSession_$$_$RANDOM

 # Listar las usuarios y grupos ...
 net -S $SMB_Server -U $SMB_Credentials rpc group list > $tmpFile.grupos
 net -S $SMB_Server -U $SMB_Credentials rpc user       > $tmpFile.usuarios

 # Listar las sesiones...
 net -S $SMB_Server -U $SMB_Credentials status sessions  > $tmpFile
 # Quitar las lineas hasta que no aparezca ------
 exec 8<$tmpFile 
 flag=0
 while read -u 8 VBLE
 do
    # Hacer algo con $VBLE
    if echo "$VBLE" | grep -q '\-\-\-\-\-\-' 
    then
       flag=1
    elif [ 1 -eq $flag ]
    then
       echo "$VBLE"
    fi
 done > $tmpFile.clients
 exec 8<&-

 perl $MY_ROOT/formatClientSessions.pl $tmpFile.clients $tmpFile.usuarios $tmpFile.grupos > $tmpFile.listaClientes


 # Listar las sesiones...
 net -S $SMB_Server -U $SMB_Credentials status shares  > $tmpFile
 # Quitar las lineas hasta que no aparezca ------
 exec 8<$tmpFile 
 flag=0
 while read -u 8 VBLE
 do
    # Hacer algo con $VBLE
    if echo "$VBLE" | grep -q '\-\-\-\-\-\-' 
    then
       flag=1
    elif [ 1 -eq $flag ]
    then
       echo "$VBLE"
    fi
 done > $tmpFile.sessions
 exec 8<&-

 perl $MY_ROOT/formatClientShares.pl $tmpFile.sessions $tmpFile.listaClientes

 # Borrar temporales...
 rm -f $tmpFile.* 2>/dev/null 
